Introducción a las bases de datos

Introducción

Una base de datos (BD) es una colección de datos estructurados que contiene información relevante para una empresa, entidad, etc.

Un sistema de gestión de bases de datos (SGBD o DBMS) es el conjunto formado por los programas que nos permiten tratar los datos. Su objetivo es proporcionar a los usuarios una forma práctica y eficiente de almacenar y recuperar los datos.

Los SGBD suelen utilizarse para gestionar grandes cantidades de datos, encargándose de salvaguardar uno de los bienes más importantes de las empresas: sus datos.

 

Aplicaciones de los sistemas de gestión de base de datos

Los escenarios más habituales de los SGBD son:

Hasta que no aparecen los SGBD, la información se almacenaba en el sistema de archivos del propio sistema operativo, lo cual tenía aparejado un conjunto de problemas:

Estos problemas favorecieron el desarrollo de SGBD y en la aparición de las propiedades ACID de las BD, fundamentales para garantizar la integridad de los datos.

 

Propiedades ACID

 

Visión de los datos

El SGBD debe presentar una visión abstracta de los datos, ocultando a los usuarios detalles de bajo nivel. Para ello, se establecen diferentes niveles de abstracción, a los que acceden usuarios de diferentes perfiles en función de su papel en el SGBD:

 

Bases de datos relacionales

Las bases de datos relacionales se caracterizan porque almacenan los datos a partir de tablas.

Incluyen lenguajes para manipular dichos datos, que normalmente se clasifican en dos tipos:

 

Tablas

Una tabla es una estructura compuesta por filas y columnas, cada una de ellas con un nombre único en la BD.

Cada tabla es un conjunto de entidades donde:

 

Ejemplo: en una entidad bancaria tendremos una tabla para los clientes, de los que almacenaremos su código, nombre, dirección y localidad.

id_cliente
nombre_cliente
calle_cliente
ciudad_cliente
80
José
Beas de Segura, 12
Málaga
50
Mariano
Pedro Antonio, 49
Jaén
29
Alonso
Rafael Alberti, 23
Madrid
10
Pedro
Tarifa, 32
Barcelona
100
Juan
Cervantes, 1
Bilbao
42
Yolanda
Ruiz Jiménez, 3
Jaén

 

Lenguaje de manipulación de datos (DML)

SQL es un lenguaje declarativo, por lo que requiere que el usuario especifique qué datos necesita sin indicar cómo se han obtenido esos datos.

Se utilizan como entrada una o varias tablas, devolviendo siempre una sola.

 

Ejemplo: consulta SQL en la que se recupera el nombre (SELECT) de todos los clientes (FROM) que tienen la característica (WHERE) de residir en Jaén.

 

Esta consulta devolverá una tabla con un único atributo, nombre_cliente, y dos registros, Mariano y Yolanda.

nombre_cliente
Mariano
Yolanda

 

Dentro de las consultas se puede utilizar información de más de una tabla.

 

Si esta consulta la ejecutamos sobre nuestro ejemplo, nos devolvería una tabla con dos atributos (numero_cuenta y saldo) y dos filas: (C-100, 1999) y (C-055, 7000).

numero_cuenta
saldo
C-100
1999
C-055
7000

 

Lenguaje de definición de datos (DDL)

SQL tiene un DDL en el que podemos definir tablas, restricciones de integridad, asertos, etc.

Dimensión temporal y de contenidos del Proceso Unificado

 

Acceso a las bases de datos desde los programas de aplicación

Algunos cálculos no pueden obtenerse mediante ninguna consulta SQL. Para poder realizarlos se debe utilizar un lenguaje anfitrión como Cobol, C, C++ o Java.

Para acceder a la base de datos, las órdenes DML deben ser realizadas a través de un lenguaje anfitrión, lo cual puede hacerse de dos maneras diferentes:

 

El diseño de base de datos

Cuando se diseña un sistema de base de datos, su finalidad principal es hacer que se pueda gestionar una gran cantidad de información.

Por lo tanto, el diseño de base de datos implica la elaboración o desarrollo del esquema de dichas bases.

Como en cualquier otro software, es necesario familiarizarnos con la empresa para la que estamos diseñando las bases de datos y seguir un proceso de abstracción para conseguir plantear un sistema que resuelva las necesidades del cliente.

 

Proceso de diseño

El proceso de diseño de la BD tiene el objetivo de conocer los requisitos de los distintos usuarios del sistema.

Primero se recogen lo requisitos y a continuación se traducen esos requisitos en un esquema conceptual de la base de datos, el cual nos ofrecerá una visión general y detallada de la empresa.

Después, el diseñador revisará el esquema para centrarse en describir los datos y sus relaciones.

Existen dos fases de diseño finales para afianzar el diseño preliminar abstracto de datos:

 

El modelo entidad-relación

El modelo entidad-relación define los objetos de datos que se procesan en el sistema, los atributos que tienen y las relaciones entre ellos.

La estructura lógica de la BD en el modelo entidad-relación se puede expresar gráficamente mediante un diagrama entidad-relación.

 

Diagrama entidad-relación

Los diagramas entidad-relación sirven para modelar la información desde un punto de vista estático.

Una restricción importante en el modelo entidad-relación es la cardinalidad de las relaciones, que expresa el número de entidades de un conjunto de entidades con el que puede relacionarse una entidad de otro conjunto con el que tenga relación.

Elementos:

 

Diagrama_entidad-relacion

Diagrama entidad-relación (Gestión de stocks)

 

Normalización

La normalización tiene como fin realizar una organización eficiente de los diferentes datos que están almacenados en la base de datos.

Los principales objetivos de la normalización son:

 

Bases de datos basadas en objetos y semiestructuradas

Algunas aplicaciones no pueden manejarse adecuadamente por medio del modelo relacional, por lo que surgen otros para tratar dichos dominios de aplicación.

El modelo de datos orientado a objetos se basa en el paradigma de programación orientado a objetos, incluyendo algunos de sus conceptos más representativos como herencia o encapsulación.

El modelo de datos relacional orientado a objetos incluye datos estructurados y colecciones.

los modelos de datos semiestructurados permiten que los datos del mismo tipo estén definidos por conjuntos de datos diferentes.

 

Almacenamiento de datos y consultas

Los SGBD tienen diferentes módulos que se encargan de diferentes funcionalidades:

 

Gestión de transacciones

Una transacción es un conjunto de operaciones que realiza una única función lógica y constituye la unidad de atomicidad y consistencia.

Es responsabilidad del programador delimitar las transacciones correctamente para que el sistema pueda mantener consistencia de la BD. Sin embargo, garantizar la atomicidad y durabilidad es responsabilidad del sistema.

De esta forma, si el sistema falla cuando una transacción se está ejecutando, esta no tendrá ningún efecto sobre el sistema. Para ello, se realizará un proceso de recuperación de fallos que restaurará la base de datos a un estado consistente anterior.

Por su parte, el gestor de control de concurrencia controla que la interacción entre transacciones concurrentes sea correcta y el resultado sea consistente.

 

Minería y análisis de datos

La minería de datos es el análisis semiautomático de grandes bases de datos para descubrir patrones útiles con el fin de construir reglas que permitan predecir comportamientos con cierto grado de confianza.

Los datos textuales se caracterizan por no tener una estructura, por lo que su tratamiento es, generalmente, más complejo. Los sistemas que trabajan con este tipo de datos lo hacen a partir de lo que se conoce como recuperación de información y se basan en el reconocimiento de palabras clave, en la asignación de relevancia a los documentos, en el análisis, en la clasificación y en la indexación de los documentos.

 

Arquitectura de las bases de datos

La arquitectura de una BD está fuertemente influenciada por el sistema informático subyacente. Puede estar centralizada, ser cliente-servidor, estar sobre máquinas paralelas o estar distribuida geográficamente. No obstante, cualquier arquitectura de base de datos debe tener tres características:

 

Arquitectura de tres niveles

La arquitectura de tres niveles fue planteada por ANSI-SPARC (American National Standard Institute - Standards Planning and Requirements Committee) y está compuesta por tres niveles que satisface las tres características que debe tener cualquier arquitectura de base de datos.

La arquitectura de tres niveles es útil para explicar el concepto de independencia de datos, que tiene la capacidad para cambiar el esquema en un nivel del sistema sin tener que modificar el esquema del nivel inmediatamente superior.

 

Arquitectura_SGBD

Componentes del SGBD y sus relaciones

 

by Jose Manuel Pinillos